// 1级分类接口
export interface FirstCtgy {
  firstctgyId: number
  firstctgyname: string
}

// 2级分类接口
export interface SecondCtgy {
  secondctgyid: number
  secctgyname: string
  // 存储所有子项三级分类
  thirdctgys: ThirdCtgy[]
  // 存储当前子项5个三级分类
  subThirdCtgys: ThirdCtgy[]
  // 没有展开取值是true，展开取值是false
  isReadyOpen: boolean
}

// 3级分类接口
export interface ThirdCtgy {
  thirdctgyid: number
  thirdname: string
}

// 分类接口
export interface CtgyState {
  firstCtgyList: FirstCtgy[],
  secondCtgyList: SecondCtgy[],
  firstCtgy: FirstCtgy,
  secondCtgy: SecondCtgy,
  thirdCtgy: ThirdCtgy,
  thirdCtgyList: ThirdCtgy[],
  subthirdCtgyList: ThirdCtgy[],
  isReadyOpen: boolean,
  switchThirdCtgyIndex: number
}

// 分类 state 状态
export const initCtgyState: CtgyState = {
  firstCtgyList: [], // 保存所有的1级分类
  secondCtgyList: [], // 保存所有的2级分类(包含所有相关的3级分类)
  firstCtgy: <FirstCtgy>{}, // 跳转路由时面包屑使用的1级分类数据
  secondCtgy: <SecondCtgy>{}, // 跳转路由时面包屑使用的2级分类对象(包含2级分类列表+相关3级分类列表+2级分类名称+2级分类id)
  thirdCtgy: <ThirdCtgy>{}, // 跳转路由时搜索框使用的3级分对象(包含3级分类id和3级分类名称)
  thirdCtgyList: [], // 跳转路由时选中的3级分类全部列表
  subthirdCtgyList: [], // 跳转路由时选中的3级分类部分列表
  isReadyOpen: true, // 跳转路由时是否展开所有3级分类 false代表展开了 true代表没有展开
  switchThirdCtgyIndex: -1, // 跳转路由时激活的3级分类id
}

